package com.eventos;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import com.eventssmartphone.JSONReader;
import com.eventssmartphone.JSONReaderListener;

import org.json.JSONArray;
import org.json.JSONException;

import android.content.Context;
import android.graphics.Point;

public class GestorPuntosVenta {

private static final GestorPuntosVenta gestor = new GestorPuntosVenta();
	
	public static GestorPuntosVenta getInstance(){
		return gestor;
	}
	
//	public List<PuntosVentaBean> damePuntosEvento(int idEvento){
	public void damePuntosEvento(int idEvento, Context context){
		JSONReader reader = new JSONReader();
		reader.setJSONReaderListener((JSONReaderListener)context);
		reader.execute("http://200.16.7.112:3000/event_management/events/damePuntosEvento/"+ String.valueOf(idEvento) +".json");
//		List<PuntosVentaBean> lista = new ArrayList<PuntosVentaBean>();
		
//		try{
			
//			jPuntos=(new JSONReader().execute("http://200.16.7.112:3000/event_management/events/damePuntosEvento/"+ String.valueOf(idEvento) +".json")).get();
//		}catch (InterruptedException e1) {
//			e1.printStackTrace();
//			return null;
//		} catch (ExecutionException e1) {
//			e1.printStackTrace();
//			return null;
//		}
		
//		try{
//			if(jPuntos != null){
//				for(int i = 0; i< jPuntos.length(); i++){
//					PuntosVentaBean punto = new PuntosVentaBean();
//					
//					punto.setIdPuntoVenta(jPuntos.getJSONObject(i).getInt("id"));
//					punto.setDescripcion(jPuntos.getJSONObject(i).getString("descripcion"));
//					punto.setUbicacion(jPuntos.getJSONObject(i).getString("address"));
//					Point coordenadas = new Point();
//					coordenadas.set(jPuntos.getJSONObject(i).getInt("latitude"), jPuntos.getJSONObject(i).getInt("longitude"));
//					punto.setCoordenadas(coordenadas);
//					lista.add(punto);
//				}
//			}
//		}catch(JSONException e1){
//			e1.printStackTrace();
//			return null;
//		}catch (Exception e1) {
//			e1.printStackTrace();
//			return null;
//		}
		
//		
//		punto = new PuntosVentaBean();
//		punto.setIdPuntoVenta(2);
//		punto.setDescripcion("Nombre 2");
//		punto.setUbicacion("Direccion 2");
//		punto.setHorario("Horario de atención 2");
//		punto.setCoordenada1(10);
//		punto.setCoordenada1(10);
//		lista.add(punto);
//		
//		punto = new PuntosVentaBean();
//		punto.setIdPuntoVenta(3);
//		punto.setDescripcion("Nombre 3");
//		punto.setUbicacion("Direccion 3");
//		punto.setHorario("Horario de atención 3");
//		punto.setCoordenada1(10);
//		punto.setCoordenada1(10);
//		lista.add(punto);
//		
//		punto = new PuntosVentaBean();
//		punto.setIdPuntoVenta(4);
//		punto.setDescripcion("Nombre 4");
//		punto.setUbicacion("Direccion 4");
//		punto.setHorario("Horario de atención 4");
//		punto.setCoordenada1(10);
//		punto.setCoordenada1(10);
//		lista.add(punto);
//		
//		punto = new PuntosVentaBean();
//		punto.setIdPuntoVenta(5);
//		punto.setDescripcion("Nombre 5");
//		punto.setUbicacion("Direccion 5");
//		punto.setHorario("Horario de atención 5");
//		punto.setCoordenada1(10);
//		punto.setCoordenada1(10);
//		lista.add(punto);
		
//		punto = new PuntosVentaBean();
//		punto.setIdPuntoVenta(6);
//		punto.setDescripcion("Nombre 6");
//		punto.setUbicacion("Direccion 6");
//		punto.setHorario("Horario de atención 6");
//		punto.setCoordenada1(10);
//		punto.setCoordenada1(10);
//		lista.add(punto);
		
//		return lista;
		
	}
	
	public List<PuntosVentaBean> procesarDamePuntosEvento(JSONArray jPuntos, int idEvento){
		List<PuntosVentaBean> lista = new ArrayList<PuntosVentaBean>();		
		try{
			if(jPuntos != null){
				for(int i = 0; i< jPuntos.length(); i++){
					PuntosVentaBean punto = new PuntosVentaBean();
					
					punto.setIdPuntoVenta(jPuntos.getJSONObject(i).getInt("id"));
					punto.setDescripcion(jPuntos.getJSONObject(i).getString("descripcion"));
					punto.setUbicacion(jPuntos.getJSONObject(i).getString("address"));
					Point coordenadas = new Point();
					coordenadas.set(jPuntos.getJSONObject(i).getInt("latitude"), jPuntos.getJSONObject(i).getInt("longitude"));
					punto.setCoordenadas(coordenadas);
					punto.setLatitude(jPuntos.getJSONObject(i).getDouble("latitude"));
					punto.setLongitude(jPuntos.getJSONObject(i).getDouble("longitude"));
					lista.add(punto);
				}
			}
		}catch(JSONException e1){
			e1.printStackTrace();
			return null;
		}catch (Exception e1) {
			e1.printStackTrace();
			return null;
		}
		return lista;
	}
}
